62 #define SLAVE_ADDRESS 0x48
63 #define NUM_OF_TX_BYTES 4
70 static volatile uint16_t TXDataIndex = 0;
74 EUSCI_B_I2C_initSlaveParam i2cConfig = {
76 EUSCI_B_I2C_OWN_ADDRESS_OFFSET0,
77 EUSCI_B_I2C_OWN_ADDRESS_ENABLE
83 CS_setupDCO(CS_INTERNAL_RESISTOR);
86 GPIO_setAsPeripheralModuleFunctionInputPin(GPIO_PORT_P1,
87 GPIO_PIN6 | GPIO_PIN7,
88 GPIO_PRIMARY_MODULE_FUNCTION);
92 GPIO_setAsOutputPin(GPIO_PORT_P1, GPIO_PIN0);
95 EUSCI_B_I2C_initSlave(EUSCI_B0_BASE, &i2cConfig);
98 EUSCI_B_I2C_setMode(EUSCI_B0_BASE, EUSCI_B_I2C_TRANSMIT_MODE);
101 EUSCI_B_I2C_enable(EUSCI_B0_BASE);
106 EUSCI_B_I2C_clearInterrupt(EUSCI_B0_BASE,
107 EUSCI_B_I2C_TRANSMIT_INTERRUPT0);
110 EUSCI_B_I2C_enableInterrupt(EUSCI_B0_BASE,
111 EUSCI_B_I2C_TRANSMIT_INTERRUPT0 |
112 EUSCI_B_I2C_STOP_INTERRUPT);
117 __bis_SR_register(LPM0_bits | GIE);
121 #if defined(__TI_COMPILER_VERSION__) || defined(__IAR_SYSTEMS_ICC__)
122 #pragma vector=USCI_B0_VECTOR
124 #elif defined(__GNUC__)
125 __attribute__((interrupt(USCI_B0_VECTOR)))
128 switch(__even_in_range(UCB0IV, USCI_I2C_UCBIT9IFG)) {
129 case USCI_NONE:
break;
130 case USCI_I2C_UCALIFG:
break;
131 case USCI_I2C_UCNACKIFG:
break;
132 case USCI_I2C_UCSTTIFG:
break;
133 case USCI_I2C_UCSTPIFG:
142 case USCI_I2C_UCRXIFG3:
break;
143 case USCI_I2C_UCTXIFG3:
break;
144 case USCI_I2C_UCRXIFG2:
break;
145 case USCI_I2C_UCTXIFG2:
break;
146 case USCI_I2C_UCRXIFG1:
break;
147 case USCI_I2C_UCTXIFG1:
break;
148 case USCI_I2C_UCRXIFG0:
break;
149 case USCI_I2C_UCTXIFG0:
150 EUSCI_B_I2C_slavePutData(EUSCI_B0_BASE,
TXData[TXDataIndex++]);
154 EUSCI_B_I2C_disableInterrupt(EUSCI_B0_BASE,
155 EUSCI_B_I2C_TRANSMIT_INTERRUPT0);
158 case USCI_I2C_UCBCNTIFG:
break;
159 case USCI_I2C_UCCLTOIFG:
break;
160 case USCI_I2C_UCBIT9IFG:
break;
const uint8_t TXData[NUM_OF_TX_BYTES]
__bic_SR_register_on_exit(LPM3_bits|GIE)
GPIO_setOutputHighOnPin(GPIO_PORT_LED1|GPIO_PORT_LED2, GPIO_PIN_LED1|GPIO_PIN_LED2)
GPIO_setOutputLowOnPin(GPIO_PORT_LED1|GPIO_PORT_LED2, GPIO_PIN_LED1|GPIO_PIN_LED2)